import axios from "axios";
import useUserStore from "../store/modules/user";
import { ElMessage } from "element-plus";

// 创建axios实例
let request = axios.create({
    // 基础路径
    baseURL: 'http://134.175.252.64:8080',
    // 超时时间
    timeout: 5000
})

// 请求拦截器
request.interceptors.request.use((config) => {
    // 可以在请求头中携带 公共参数 如： token
    let userStore = useUserStore()
    if (userStore.token) {
        config.headers.token = userStore.token
    }
    return config
})

// 响应拦截器
request.interceptors.response.use((response) => {
    // 简化接口返回的数据结构
    // 请求成功
    return response.data
}, (error) => {
    console.log('request', error);

    // 处理http网络错误
    // 存储网络错误信息
    let message = ''
    // http状态码
    let status = error.response.status
    switch (status) {
        case 401 | 301:
            message = 'Token已过期'
            break;
        case 403:
            message = '无权访问'
            break;
        case 404:
            message = '请求地址错误'
            break;
        case 500:
            message = '服务器出现问题'
            break;
        default:
            message = '网络出现问题'
            break;
    }
    // 提示错误信息
    ElMessage({
        type: 'error',
        message
    })

    return Promise.reject(error)
})

export default request